Distributed systems, including server farms, web services, and the like, have become increasingly common to provide resources, such as computational and storage resources. The resources may be provided by a network of servers, which can be part of a structured system to more efficiently store, retrieve, and query over data throughout the network. It may be desirable to distribute workloads across the servers, in order to optimize resource usage, maximize throughput, minimize response time, avoid overload of one of the servers, and/or achieve other load balancing objectives. However, due to the complexity of modern distributed systems, it can be challenging to effectively and efficiently manage and implement the load balancing objectives.